# -*- coding: utf-8 -*-
"""
-------------------------------------------------
Project Name: luffcity study project
File Name: 元类前期准备工作练习.py
Author: kij
Create Date: 2021/2/18
-------------------------------------------------
"""


# 查看类内部方法
class Kijlee:
	# def __init__(self, name):
	# 	self.name = name

	def __getitem__(self, item):
		print("__getitem__方法被调用")
		return self.__dict__.get(item)

	def __setitem__(self, key, value):
		print("__setitem__方法被调用")
		# 将键值添加到属性字典里面
		self.__dict__[key]=value

	def __delitem__(self, key):
		print("__delitem__方法被调用")
		print(key)
		self.__dict__.pop(key)

	def __str__(self):
		print("__str__方法被调用相当于toString()方法")
		return ""

	def __del__(self):
		# 当程序运行完的时候自动触发 对象相关联的数据在这里回收处理 回收操作系统资源
		print("__del__方法被调用相当于Destroy()方法")


kij = Kijlee()
# kij = Kijlee('kijlee')
# kij['name']  # 调用属性名 会触发 __getitem__方法
kij['sex'] = '男'  # 赋值属性名 会触发 __setitem__方法
print(kij.__dict__)
print(kij['sex'])
del kij['sex']  # 触发 __delitem__方法
print(kij.__dict__)
print(kij)  # 触发__str__

print(type(kij))
print(type(Kijlee))
